package com.yanggu.jt808.annotation;

import com.yanggu.jt808.enums.CharsetType;
import com.yanggu.jt808.enums.DataType;

import java.lang.annotation.*;

/**
 * 自定义解析注解
 *
 * @author
 * @date 2020/5/26 16:12
 */
@Repeatable(Fs.class)
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Jt808Property {

    /** 排序,默认使用代码顺序 */
    int index() default 0;

    /** 长度,默认使用类型长度,-1读取剩余长度 */
    int length() default -1;

    /** 该字段的前置长度单位 1.BYTE 2.WORD 3.MEDIUM 4.DWORD */
    DataType lengthUnit() default DataType.BYTE;

    /** 字符集 BCD、HEX、GBK、UTF-8等 */
    CharsetType charset() default CharsetType.GBK;

    /** 描述 */
    String desc() default "";

    /**
     * 版本号,默认不区分
     * 1=2019版本
     * 0=2013版本
     * -1=2011版本
     * @return
     */
    int[] version() default {};
}
